package com.errol.msgcenterclient.autoconfig;

import org.springframework.context.annotation.Import;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 消息中心客户端自动配置类
 * -
 * 由于业务端包名也是 com.renjia，所以默认消息中心客户端中的 spring bean 都会被加载
 * 但是有些业务端可能只需要接入钉钉群通知，无需接入顺序消费通道，所以添加此注解来灵活配置
 * -
 * 必须主动应用该注解，且启用对应生成端，才会创建对应生产者
 *
 * @author zhang xiao bin
 * @version v1.0
 * @date 2021/08/31
 * @since v1.1.0
 **/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(AliYunMqProducerSelector.class)
public @interface EnableMsgCenterClient {

    /**
     * 是否启用顺序消息生产端，顺序消息一般用于业务消息通知
     * 默认不启用
     */
    boolean enableCommonProducer() default false;

    /**
     * 是否启用批量消息生产端，目前用于钉钉群通知
     * 默认不启用
     */
    boolean enableDingRobotProducer() default false;

}
